#include <stdio.h>
#include<iostream.> 
#define N 10     //待查找序列的元素个数
using namespace std;
//实现顺序查找，arr[N] 为待查找序列，value 为要查找的目标元素
int linear_search(int arr[N], int value) {
    int i;
    //从第 1 个元素开始遍历
    for (i = 0; i < N; i++) {
        //匹配成功，返回元素所处的位置下标
        if (arr[i] == value) {
            return i;
        }
    }
    //匹配失败，返回 -1
    return -1;
}
int main()
{
    int arr[N] = { 10,14,19,26,27,31,33,35,42,44 };
    int add = linear_search(arr, 33);
    if (add != -1) {
       cout<<"查找成功，为序列中第 "<<add + 1<< "个元素";
    }
    else {
        printf("查找失败");
    }
    return 0;
}
// 顺序查找的平均查找长度为 1/n×(1+2+3+…+n)，也就是 (1+n)/2，
// 这里假设每个元素的查找概率相等。在最坏的情况下就是没有找到，近似比较 n+2 次（在我们的优化版里需要比较 n+2 次，
// 在普通版顺序查找里则需要比较 2n 次。
// 现在我们来看看顺序查找的性能，平均时间复杂度为 O(n)，n 是待查数列的长度。